#include <iostream>
using namespace std;

/*
    【题目222】定义一个哺乳动物Mammal类，再由此派生出狗Dog类，二者都定义Speak()成员函数，基类中定义为虚函数，定义一个Dog类的对象，调用SpeakO函数，观察运行结果。
*/

class Mammal
{
public:
    virtual void Speak()
    {
        cout << "Mammal sound!\n";
    }
};

class Dog : public Mammal
{
public:
    void Speak()
    {
        cout << "Woof!\n";
    }
};

void animalSpeak(Mammal *pMammal)
{
    pMammal->Speak();
}

int main()
{

    Dog d;
    animalSpeak(&d);

    return 0;
}